///*
// * Decompiled with CFR.
// *
// * Could not load the following classes:
// *  com.lin.spring.config.resolve.test.ConfigA
// *  com.lin.spring.config.resolve.test.MyConfig
// */
//package com.lin.spring.config.resolve.test;
//
//import com.lin.spring.config.resolve.test.ConfigA;
//import com.lin.spring.config.resolve.test.MyConfig;
//import java.lang.reflect.Method;
//import org.springframework.beans.BeansException;
//import org.springframework.beans.factory.BeanFactory;
//import org.springframework.cglib.core.ReflectUtils;
//import org.springframework.cglib.core.Signature;
//import org.springframework.cglib.proxy.Callback;
//import org.springframework.cglib.proxy.MethodInterceptor;
//import org.springframework.cglib.proxy.MethodProxy;
//import org.springframework.cglib.proxy.NoOp;
//import org.springframework.context.annotation.ConfigurationClassEnhancer;
//
//public class MyConfig$$EnhancerBySpringCGLIB$$e9f23de2
//extends MyConfig
//implements ConfigurationClassEnhancer.EnhancedConfiguration {
//    private boolean CGLIB$BOUND;
//    public static Object CGLIB$FACTORY_DATA;
//    private static final ThreadLocal CGLIB$THREAD_CALLBACKS;
//    private static final Callback[] CGLIB$STATIC_CALLBACKS;
//    private MethodInterceptor CGLIB$CALLBACK_0;
//    private MethodInterceptor CGLIB$CALLBACK_1;
//    private NoOp CGLIB$CALLBACK_2;
//    private static Object CGLIB$CALLBACK_FILTER;
//    private static final Method CGLIB$serviceA$0$Method;
//    private static final MethodProxy CGLIB$serviceA$0$Proxy;
//    private static final Object[] CGLIB$emptyArgs;
//    private static final Method CGLIB$setBeanFactory$5$Method;
//    private static final MethodProxy CGLIB$setBeanFactory$5$Proxy;
//    public BeanFactory $$beanFactory;
//
//    static void CGLIB$STATICHOOK3() {
//        CGLIB$THREAD_CALLBACKS = new ThreadLocal();
//        CGLIB$emptyArgs = new Object[0];
//        Class<?> clazz = Class.forName("com.lin.spring.config.resolve.test.MyConfig$$EnhancerBySpringCGLIB$$e9f23de2");
//        Class<?> clazz2 = Class.forName("org.springframework.beans.factory.BeanFactoryAware");
//        CGLIB$setBeanFactory$5$Method = ReflectUtils.findMethods(new String[]{"setBeanFactory", "(Lorg/springframework/beans/factory/BeanFactory;)V"}, clazz2.getDeclaredMethods())[0];
//        CGLIB$setBeanFactory$5$Proxy = MethodProxy.create(clazz2, clazz, "(Lorg/springframework/beans/factory/BeanFactory;)V", "setBeanFactory", "CGLIB$setBeanFactory$5");
//        clazz2 = Class.forName("com.lin.spring.config.resolve.test.MyConfig");
//        CGLIB$serviceA$0$Method = ReflectUtils.findMethods(new String[]{"serviceA", "()Lcom/lin/spring/config/resolve/test/ConfigA;"}, clazz2.getDeclaredMethods())[0];
//        CGLIB$serviceA$0$Proxy = MethodProxy.create(clazz2, clazz, "()Lcom/lin/spring/config/resolve/test/ConfigA;", "serviceA", "CGLIB$serviceA$0");
//    }
//
//    final ConfigA CGLIB$serviceA$0() {
//        return super.serviceA();
//    }
//
//    public final ConfigA serviceA() {
//        MethodInterceptor methodInterceptor = this.CGLIB$CALLBACK_0;
//        if (methodInterceptor == null) {
//            MyConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$BIND_CALLBACKS(this);
//            methodInterceptor = this.CGLIB$CALLBACK_0;
//        }
//        if (methodInterceptor != null) {
//            return (ConfigA)methodInterceptor.intercept(this, CGLIB$serviceA$0$Method, CGLIB$emptyArgs, CGLIB$serviceA$0$Proxy);
//        }
//        return super.serviceA();
//    }
//
//    final void CGLIB$setBeanFactory$5(BeanFactory beanFactory) throws BeansException {
//        super.setBeanFactory(beanFactory);
//    }
//
//    @Override
//    public final void setBeanFactory(BeanFactory beanFactory) throws BeansException {
//        MethodInterceptor methodInterceptor = this.CGLIB$CALLBACK_1;
//        if (methodInterceptor == null) {
//            MyConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$BIND_CALLBACKS(this);
//            methodInterceptor = this.CGLIB$CALLBACK_1;
//        }
//        if (methodInterceptor != null) {
//            Object object = methodInterceptor.intercept(this, CGLIB$setBeanFactory$5$Method, new Object[]{beanFactory}, CGLIB$setBeanFactory$5$Proxy);
//            return;
//        }
//        super.setBeanFactory(beanFactory);
//    }
//
//    public static MethodProxy CGLIB$findMethodProxy(Signature signature) {
//        String string = ((Object)signature).toString();
//        switch (string.hashCode()) {
//            case -945532288: {
//                if (!string.equals("serviceA()Lcom/lin/spring/config/resolve/test/ConfigA;")) break;
//                return CGLIB$serviceA$0$Proxy;
//            }
//            case 2095635076: {
//                if (!string.equals("setBeanFactory(Lorg/springframework/beans/factory/BeanFactory;)V")) break;
//                return CGLIB$setBeanFactory$5$Proxy;
//            }
//        }
//        return null;
//    }
//
//    public MyConfig$$EnhancerBySpringCGLIB$$e9f23de2() {
//        MyConfig$$EnhancerBySpringCGLIB$$e9f23de2 myConfig$$EnhancerBySpringCGLIB$$e9f23de2 = this;
//        MyConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$BIND_CALLBACKS(myConfig$$EnhancerBySpringCGLIB$$e9f23de2);
//    }
//
//    public static void CGLIB$SET_THREAD_CALLBACKS(Callback[] callbackArray) {
//        CGLIB$THREAD_CALLBACKS.set(callbackArray);
//    }
//
//    public static void CGLIB$SET_STATIC_CALLBACKS(Callback[] callbackArray) {
//        CGLIB$STATIC_CALLBACKS = callbackArray;
//    }
//
//    private static final void CGLIB$BIND_CALLBACKS(Object object) {
//        block2: {
//            Object object2;
//            MyConfig$$EnhancerBySpringCGLIB$$e9f23de2 myConfig$$EnhancerBySpringCGLIB$$e9f23de2;
//            block3: {
//                myConfig$$EnhancerBySpringCGLIB$$e9f23de2 = (MyConfig$$EnhancerBySpringCGLIB$$e9f23de2)object;
//                if (myConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$BOUND) break block2;
//                myConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$BOUND = true;
//                object2 = CGLIB$THREAD_CALLBACKS.get();
//                if (object2 != null) break block3;
//                object2 = CGLIB$STATIC_CALLBACKS;
//                if (CGLIB$STATIC_CALLBACKS == null) break block2;
//            }
//            Callback[] callbackArray = (Callback[])object2;
//            MyConfig$$EnhancerBySpringCGLIB$$e9f23de2 myConfig$$EnhancerBySpringCGLIB$$e9f23de22 = myConfig$$EnhancerBySpringCGLIB$$e9f23de2;
//            myConfig$$EnhancerBySpringCGLIB$$e9f23de22.CGLIB$CALLBACK_2 = (NoOp)callbackArray[2];
//            myConfig$$EnhancerBySpringCGLIB$$e9f23de22.CGLIB$CALLBACK_1 = (MethodInterceptor)callbackArray[1];
//            myConfig$$EnhancerBySpringCGLIB$$e9f23de22.CGLIB$CALLBACK_0 = (MethodInterceptor)callbackArray[0];
//        }
//    }
//
//    static {
//        MyConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$STATICHOOK4();
//        MyConfig$$EnhancerBySpringCGLIB$$e9f23de2.CGLIB$STATICHOOK3();
//    }
//
//    static void CGLIB$STATICHOOK4() {
//    }
//}
//
